/*
 * Copyright (c) 2019 DawnFramework. All Rights Reserved.
 * Licensed under the MIT (LICENSE) license.
 */

package org.dawn.common.service.dto;

import lombok.Getter;
import lombok.Setter;
import org.dawn.common.core.mode.ToString;

import java.util.Date;

/**
 * BaseDTO
 */
@Getter
@Setter
public abstract class BaseDTO<T> extends ToString implements DTO {
    private static final long serialVersionUID = 3470175444663365036L;
    /** 主键 */
    private T id;
    /** 数据创建时间 */
    private Date createdTime;
    /** 创建人 */
    private String createdBy;
    /** 最后修改时间 */
    private Date lastModifiedTime;
    /** 最后修改人 */
    private String lastModifiedBy;
    /** 逻辑删除标识位 */
    private Boolean deleted;

    /**
     * @return 数据创建时间的 unix 时间戳
     */
    public long createdTimeUnixTimestamp() {
        return createdTime != null ? createdTime.getTime() / 1000 : 0;
    }

    /**
     * @return 数据最后更新时间的 unix 时间戳
     */
    public long lastModifiedTimeUnixTimestamp() {
        return createdTime != null ? createdTime.getTime() / 1000 : 0;
    }
}